package com.locAutoWeb.objetos;

import java.io.Serializable;
import java.math.BigDecimal;
import java.sql.Array;
import java.sql.Blob;
import java.sql.Date;
import java.sql.Struct;
import java.util.List;
import java.util.Vector;

import sun.misc.BASE64Encoder;

public class Veiculo implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private long codigo;
	private BigDecimal valorAluguel;
	private String placa;
	private String chaci;
	private String cor;
	private Endereco endereco;
	private List<Imagem> listaImagens;
	private Array arrayImagens;
	private Vector<Blob> blobs = new Vector<Blob>();
	private String[] imagens = {"","","","",""};
	private Blob video;
	private Date dataInicio;
	private Date dataTermico;
	private Date dataMulta;
	private Date dataDevolucao;
	
	public String[] getImagens() {
		return imagens;
	}
	public void setImagens(String[] imagens) {
		this.imagens = imagens;
	}
	public Array getArrayImagens() {
		return arrayImagens;
	}
	public void setArrayImagens(Array arrayImagens) {
		this.arrayImagens = arrayImagens; 
	}
	public Date getDataInicio() {
		return dataInicio;
	}
	public void setDataInicio(Date dataInicio) {
		this.dataInicio = dataInicio;
	}
	
	public String getPlaca() {
		return placa;
	}
	public void setPlaca(String placa) {
		this.placa = placa;
	}
	public String getChaci() {
		return chaci;
	}
	public void setChaci(String chaci) {
		this.chaci = chaci;
	}
	public String getCor() {
		return cor;
	}
	public void setCor(String cor) {
		this.cor = cor;
	}
	public Date getDataTermico() {
		return dataTermico;
	}
	public void setDataTermico(Date dataTermico) {
		this.dataTermico = dataTermico;
	}
	public Date getDataMulta() {
		return dataMulta;
	}
	public void setDataMulta(Date dataMulta) {
		this.dataMulta = dataMulta;
	}
	public Date getDataDevolucao() {
		return dataDevolucao;
	}
	public void setDataDevolucao(Date dataDevolucao) {
		this.dataDevolucao = dataDevolucao;
	}
	public long getCodigo() {
		return codigo;
	}
	public void setCodigo(long codigo) {
		this.codigo = codigo;
	}
	
	
	
	public Endereco getEndereco() {
		return endereco;
	}
	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}
	
	public List<Imagem> getListaImagens() {
		return listaImagens;
	}
	public void setListaImagens(List<Imagem> listaImagens) {
		this.listaImagens = listaImagens;
	}
	public Blob getVideo() {
		return video;
	}
	public void setVideo(Blob video) {
		this.video = video;
	}
	
	public BigDecimal getValorAluguel() {
		return valorAluguel;
	}
	public void setValorAluguel(BigDecimal valorAluguel) {
		this.valorAluguel = valorAluguel;
	}
	
		
	public Vector<Blob> getBlobs() {
		return blobs;
	}
	public void setBlobs(Vector<Blob> blobs) {
		this.blobs = blobs;
	}
	public void carregarVector() throws Exception{
		
		try {
			Object[] list = (Object[]) this.arrayImagens.getArray();
		   	 for (int i = 0; i < list.length; i++) {
		   		Struct stc = (Struct) list[i];
		   		 Object[] attrib = stc.getAttributes();
		   		 Blob mapBlob = (Blob) attrib[1];
		   		 this.blobs.add(mapBlob);
		   	 }
		   	carregarImagens();
		} catch (Exception e) {
			// TODO: handle exception
		}
			 
		
		 
	}
//	
//	public void carregarFones() throws Exception{
//		
//		 try {
//			 Object[] list = (Object[]) this.proprietario.getArrayFones().getArray();
//			 String[] fones = {"","",""};
//		   	 for (int i = 0; i < list.length; i++) {
//		   		Struct stc = (Struct) list[i];
//		   		 Object[] attrib = stc.getAttributes();
//		   		 fones[i] = (String) attrib[0];
//		   	 }
//		   	 
//		   	 this.proprietario.setFones(fones);
//		} catch (Exception e) {
//			// TODO: handle exception
//		}
//			 
//		
//		 
//	}
	
	private void carregarImagens(){
		String img1 = null;
		String img2 = null;
		String img3 = null;
		String img4 = null;
		String img5 = null;
		
		byte[] bimg1 = null, bimg2 = null, bimg3 = null, bimg4 = null, bimg5 = null;
		Blob mapBlob = null;
		Blob mapBlob2 = null;
		Blob mapBlob3 = null;
		Blob mapBlob4 = null;
		Blob mapBlob5 = null;
		
		try {
			mapBlob = this.blobs.get(0);
			mapBlob2 = this.blobs.get(1);
			mapBlob3 = this.blobs.get(2);
			mapBlob4 = this.blobs.get(3);
			mapBlob5 = this.blobs.get(4);
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		try {
			bimg1 = mapBlob.getBytes(1,(int)mapBlob.length());
			bimg2 = mapBlob2.getBytes(1,(int)mapBlob2.length());
			bimg3 = mapBlob3.getBytes(1,(int)mapBlob3.length());
			bimg4 = mapBlob4.getBytes(1,(int)mapBlob4.length());
			bimg5 = mapBlob5.getBytes(1,(int)mapBlob5.length());
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		BASE64Encoder encod = new BASE64Encoder();
		
		try {
			img1 = encod.encode(bimg1);
			this.imagens[0] = img1;
			
			img2 = encod.encode(bimg2);
			this.imagens[1] = img2;
			
			img3 = encod.encode(bimg3);
			this.imagens[2] = img3;
			
			img4 = encod.encode(bimg4);
			this.imagens[3] = img4;
			
			img5 = encod.encode(bimg5);
			this.imagens[4] = img5;
			
		} catch (Exception e) {
			// TODO: handle exception
		}
		
	}

}
